From fdb1fa4d089359951c34212008e876bd91e6c0bc Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 23 Oct 2020 12:19:31 -0400 Subject: [PATCH] Give all search entries an icon This was first requested for the search entry in GtkDropDown, but it is better to be consistent and give every search entry an icon. Related: #3291 --- docs/reference/gtk/images/search-entry.png | Bin 2418 -> 2990 bytes gtk/gtkdropdown.c | 10 ---------- gtk/gtksearchentry.c | 9 +++++++++ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/docs/reference/gtk/images/search-entry.png b/docs/reference/gtk/images/search-entry.png index 22549fc093b23505de205e5d8413a42f4e265150..4ecdbfe8c4dc21bb67bde2ee01272c912890c255 100644 GIT binary patch literal 2990 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 literal 2418 zcma)8c{tQtAO9K4SS!hr#*)ZZ7mXM$X&G74a=RD_}&-Zga-*e9yWhW=CDh&XD zoP#~m1pq|AF5oFC0oM6Wp3`6>7ID(SRT3<*l7S=ukkWTRo^U1Pb4MJo`|uhx-V5sx z$CeY5$7vL+M*vmQQ7Qn-MgtW{* zkOuFj)&YXMKL0xPiIq1TKu#9V9B^BzeAf8ZF)fQLLZYv~x33wiZbbgU6WzN8ARAwt z#@WW}vhz1S*H6Yspu`jC>r)5Z`1t30+8WMjikI#Iw1%_Nn^SDg*6`;ql|VJMhHqyz zr?9_j_&z-gWQ4sd&`?s2x8C4DVbVYbcU~Ts*e3Q}^E21{k`z!8!Tpg;kE{T8)tZPW zkka%4B-Tkp(?38Okl%M6APr?hj(5?(EzHXQ3%T$;v^_BP=6jYbgK*1<_WVYT-)f6z^h?x}sD9B}f0+_%5|{{6rX*W}NEibg^sDX+T>kZE2Bf5_|SAh^^vV znW+H`KIB63~k ztv}S`H+j(U@N70wkhU_zd}Oa3+8`OVS4Cy4C|>xbZX*TTkh=qWM>|YqnfdbS@=T4gksEWS(a7)Wxs77o%cbJ@$ojt~) zM6h1tW$2d`@e3>q;`UZld3ibi=llzccwsE#m4t)@|9d_2+u|Y`i%oSk5N}^yHC=4m zKK8lhasUqZ(1^;vMWIkS1k|l{Poi)G-7#*g{F~R)wzjt9qC524We2SjGBcIDA!aqI5))vX;pJr|Z~ShKz?A0ngb1+};M)Lr1)+#H9~ozfy$XjVyjlLJRf zW2OU-Fuv5IDfoFMkjTUhFi4}(GX))A)yBY8oTc&3md)k9pe$~;vd?5$mN#UKp<6UL zk!~|RR2x9BD*Q86No(iBTs3jRc%m|4fieRI_RuSIVRVxDDB-rfb_a_Et8`5+F5VCL z*Q&tbhHf?%upLKoWb5newI4ZnczBSIS~@F|Vi29~BBz6U_wF69CXaeVP?BZh*wi?c zq!S3(MSyhp)2i{^rpcX_ctXDejoSZteFogLuE9s_7SJ&P9UNl6mmnRx^+%=L^Tp>+!3AtCn&Evp{? z(D&)n9%7qDR$n*BN`KjzEP8N#R4XVu$ezLe@{qcwCIWNA%-nopEoLta#(IydaM8c@ zMl;8$eCaEP;!PE01bTX#qax*PaMwuYslBL8TfENXqs1d)JalQhjSbmMiu}w-! zLflwCBqt}A$1g>ORxc4l>L?ZeQJy;g=Vfsjq59-Et=zsYhq8!z0@W!h}V`rVxXABlp30*D*= zj6PT={~22IQLy?(p!ylK{!J)JROYxTTgx^*;HV5B|0O?EETQI??lgQIKvb>Xn9{22 zFdeu+*`}3?wol;{Qcf>eKO

P6ifAxJ{iyv#$f7nNF~W1F|t*Ge%l@k5Coa{2Qr* zb{f^7L$XDe2)v^W;h>wY6kCMtAi0u4a^Kz!rkHH{#=;ikm}x12|B(OY?qBp38z7+1f_OS!pbQhVXbob%y7SfQ40y{mFdOP zP0%*Z{2CaM;yU${+gyU`&4_^$MsfnsS~}7hgBomlwFqs z%gkS10RkD~$8(~r*u>jTxVca`M&6B_;()&* zq7iyPXy?~ibQsMO6K@C%vY@_-&1<$n$=-&e8c)>|uy-I&%|6;z^Yz+ai#WGP`C5~c z*#@y_sy+~SU=PsXR}ze1O+aI5ig^iAU&hVq9ml)t3ImgK xDRa@0)mo9x9+Mbr`cIclkm4ht`S##3&*5412nxg;! diff --git a/gtk/gtkdropdown.c b/gtk/gtkdropdown.c index d33f1e9524..80dc7a1ae6 100644 --- a/gtk/gtkdropdown.c +++ b/gtk/gtkdropdown.c @@ -251,8 +251,6 @@ gtk_drop_down_dispose (GObject *object) { GtkDropDown *self = GTK_DROP_DOWN (object); - gtk_widget_unparent (gtk_widget_get_first_child (self->search_entry)); - g_clear_pointer (&self->popup, gtk_widget_unparent); g_clear_pointer (&self->button, gtk_widget_unparent); @@ -596,19 +594,11 @@ set_default_factory (GtkDropDown *self) static void gtk_drop_down_init (GtkDropDown *self) { - GtkWidget *icon; - g_type_ensure (GTK_TYPE_BUILTIN_ICON); g_type_ensure (GTK_TYPE_LIST_ITEM_WIDGET); gtk_widget_init_template (GTK_WIDGET (self)); - icon = g_object_new (GTK_TYPE_IMAGE, - "accessible-role", GTK_ACCESSIBLE_ROLE_NONE, - "icon-name", "system-search-symbolic", - NULL); - gtk_widget_insert_after (icon, self->search_entry, NULL); - set_default_factory (self); } diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c index 78268113c8..5c227f6853 100644 --- a/gtk/gtksearchentry.c +++ b/gtk/gtksearchentry.c @@ -160,6 +160,8 @@ gtk_search_entry_finalize (GObject *object) gtk_editable_finish_delegate (GTK_EDITABLE (entry)); + gtk_widget_unparent (gtk_widget_get_first_child (GTK_WIDGET (entry))); + g_clear_pointer (&entry->entry, gtk_widget_unparent); g_clear_pointer (&entry->icon, gtk_widget_unparent); @@ -549,8 +551,15 @@ activate_cb (GtkText *text, static void gtk_search_entry_init (GtkSearchEntry *entry) { + GtkWidget *icon; GtkGesture *press; + icon = g_object_new (GTK_TYPE_IMAGE, + "accessible-role", GTK_ACCESSIBLE_ROLE_NONE, + "icon-name", "system-search-symbolic", + NULL); + gtk_widget_set_parent (icon, GTK_WIDGET (entry)); + entry->entry = gtk_text_new (); gtk_widget_set_parent (entry->entry, GTK_WIDGET (entry)); gtk_widget_set_hexpand (entry->entry, TRUE); -- 2.30.2